﻿// --------------------------------------------------------------------------------------------------------------------
// <copyright file="MessageManager.cs" company="Rabid Dog Labs">
//   Rabid Dog Labs
// </copyright>
// <summary>
//   Defines the MessageManager type.
// </summary>
// --------------------------------------------------------------------------------------------------------------------

using TeamCommunitySolution.Modules.Messaging.Requests;
using TeamCommunitySolution.Modules.Messaging.Responses;

namespace TeamCommunitySolution.Modules.Messaging
{
    /// <summary>
    /// Message Manager Definition.
    /// </summary>
    public interface MessageManager
    {
        /// <summary>
        /// Sends the private message.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <returns>Message Response.</returns>
        MessageResponse SendPrivateMessage(MessageRequest request);

        /// <summary>
        /// Gets the message inbox item.
        /// </summary>
        /// <param name="messageInRequest">The message in request.</param>
        /// <returns>Message Response.</returns>
        MessageResponse GetMessageInboxItem(MessageRequest messageInRequest);

        /// <summary>
        /// Gets the message outbox item.
        /// </summary>
        /// <param name="messageOutRequest">The message out request.</param>
        /// <returns>Message Response.</returns>
        MessageResponse GetMessageOutboxItem(MessageRequest messageOutRequest);
    }
}
